(:
OsmNotes: Carlos Andres Gonzalez Ramirez
Enviar peticion Consulta Inventario
Fecha Creacion: 2012/01/25
:)

declare namespace oms="urn:com:metasolv:oms:xmlapi:1";
declare namespace automator="java:oracle.communications.ordermanagement.automation.plugin.ScriptSenderContextInvocation";
declare namespace context="java:com.mslv.oms.automation.TaskContext"; 

declare namespace log="java:org.apache.commons.logging.Log";
declare namespace outboundMessage="java:javax.jms.TextMessage";

declare namespace saxon="http://saxon.sf.net/";
declare namespace xsl="http://www.w3.org/1999/XSL/Transform";

declare namespace resourceBundle="java:java.util.ResourceBundle";

declare variable $automator external;
declare variable $context external;

declare variable $log external;
declare variable $outboundMessage external; 

(: Se recuperan algunos valores de un archivo de propiedades para ponerlos en el encabezado del mensaje :)	
(:let $resourceBundle := resourceBundle:getBundle("cartuchoOsmNotes")
let $valorPropertiesDemo := resourceBundle:getString($resourceBundle,"osm.notes.valorPropertiesDemo")
let $valorPropertiesOperacion := resourceBundle:getString($resourceBundle,"osm.notes.nombre_operacion.consultaInventario")
let $valorPropertiesEstadoPeticionEnviado := resourceBundle:getString($resourceBundle,"osm.notes.estado_peticion.enviado"):)

(: Se asigna el contenido completo del task data a una variable:)
let $order := /oms:GetOrder.Response
(: Se asigna el numero de orden a una variable:)
let $idOrden := $order/oms:OrderID

(: Se asigna el encabezado de la orden a una variable :)
let $encabezado := $order/oms:_root/oms:Encabezado

let $taskDataXml := saxon:serialize($order, <xsl:output method='xml' omit-xml-declaration='yes' indent='yes' saxon:indent-spaces='4'/>)

return 
(
(: Imprimo la variable donde almacene el xml que esta ingresando a la tarea :)
(:log:info($log, fn:concat('OsmNotes Log Message: OrderId[', /oms:GetOrder.Response/oms:OrderID, '] taskDataXml[', $taskDataXml, ']')),:)
(: Se pone una propiedad jms al mensaje para identificarlo :)
(:outboundMessage:setStringProperty($outboundMessage, 'PropiedadOperacionInvocar', $valorPropertiesOperacion),:)

(:Se crea el mensaje xml que se debe enviar a la cola de mensajeria incluyendo en el la informacion que hemos recuperado :)
<RequestConsultaInventario xmlns="http://www.une.net.co/ncaOsmUne" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
		<IdOrdenOsm>{$order/oms:OrderID/text()}</IdOrdenOsm>
		<IdOrdenCrm>{$encabezado/oms:InformacionOrden/oms:NumeroCrmOrden/text()}</IdOrdenCrm>
		<!--<ValorArchivoPropiedades>{$valorPropertiesDemo}</ValorArchivoPropiedades>-->
</RequestConsultaInventario>
)